package com.wust.supermarket.service;

import java.util.List;

import com.wust.supermarket.domain.Sale;

public interface SaleService {
	boolean addlaji(Sale sale);
	/**
	 * 完成一次服务（以相同的saleId插入多条sale）
	 * @param sales
	 * @return 改变行数
	 */
	boolean completeOneSale(List<Sale> sales);
	
	/**
	 * 删除sale表的一行
	 * @param saleId
	 * @param memberId
	 * @param merchId
	 * @return 是否成功
	 */
	boolean deleteOneSaleLine(String saleId,int memberId,int merchId);
	
	/**
	 * 删除某次交易订单（saleId相同的）
	 * @param saleId
	 * @return 是否成功
	 */
	boolean deleteSaleBySaleId(String saleId);
	
	/**
	 * 删除某用户的某次交易订单
	 * @param saleId
	 * @param memberId
	 * @return 是否成功
	 */
	boolean deleteSaleBySaleIdAndMemberId(String saleId,int memberId);
	
	/**
	 * 删除否次交易中某商品的订单
	 * @param saleId
	 * @param merchId
	 * @return 是否成功
	 */
	boolean deleteSaleBySaleIdAndMerchId(String saleId,int merchId);
	
	/**
	 * 更新订单
	 * @param sale
	 * @return 是否成功
	 */
	boolean updateSale(Sale sale);
	
	/**
	 * 查询所有订单
	 * @return 订单列
	 */
	List<Sale> selectALlSales();
	
	/**
	 * 查询某次交易的订单
	 * @param saleId
	 * @return 此次交易的订单列
	 */
	List<Sale> selectSaleById(String saleId);
	
	/**
	 * 查询某人的所有订单
	 * @param memberId
	 * @return 该人所有订单
	 */
	List<Sale> selectSaleByMemberId(int memberId);
	
	/**
	 * 查询某商品的所有订单
	 * @param merchId
	 * @return 该商品所有订单
	 */
	List<Sale> selectSaleByMerchId(int merchId);
	
	/**
	 * 查询一条订单
	 * @param saleId
	 * @param memberId
	 * @param merchId
	 * @return 一条订单
	 */
	Sale selectSaleBySaleIdAndMemberIdAndMerchId(String saleId,int memberId,int merchId);
	
	/**
	 * 统计销售额
	 * @return
	 */
	float getAllSalePrice();
}
